home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Diamond Collection / The Diamond Collection (Software Vault)(Digital Impact).ISO / cdr18 / dmmatch.zip / DMATCH.BAS next >
BASIC Source File  |  1995-01-19  |  9KB  |  381 lines

  1. DIM wads$(100)
  2. DIM file$(100)
  3. DIM plist$(20)
  4. f = 15
  5. b = 0
  6. w = 3
  7. CLS
  8. OPEN "dmatch.dat" FOR INPUT AS #1
  9. INPUT #1, dial '0=dial 1=answer 2=connected
  10. INPUT #1, coop '0=cooperative 1=deathmatch 2=altdeath
  11. INPUT #1, comport
  12. INPUT #1, pnumber$
  13. INPUT #1, diff
  14. INPUT #1, episode
  15. INPUT #1, level
  16. INPUT #1, lgame
  17. INPUT #1, monsters '0=no monsters 1=regular monsters 2=respawning monsters
  18. DO
  19. IF NOT EOF(1) THEN x = x + 1
  20. IF NOT EOF(1) THEN INPUT #1, wads$(x)
  21. LOOP UNTIL EOF(1)
  22. lastwad = x
  23. CLOSE #1
  24. OPEN "wads.dat" FOR INPUT AS #1
  25. FOR x = 1 TO 5
  26. INPUT #1, nul$
  27. NEXT x
  28. x = 0
  29. DO
  30. x = x + 1
  31. LINE INPUT #1, file$(x)
  32. LOOP UNTIL LEFT$(file$(x), 1) = " "
  33. filenum = x
  34. FOR x = 1 TO filenum
  35. file$(x) = LEFT$(file$(x), 12)
  36. z = 0
  37. DO
  38. z = z + 1
  39. t$ = LEFT$(file$(x), z)
  40. LOOP UNTIL RIGHT$(t$, 1) = " " OR RIGHT$(t$, 1) = "."
  41. lft$ = LEFT$(t$, LEN(t$) - 1)
  42. rt$ = RIGHT$(file$(x), 3)
  43. file$(x) = lft$ + "." + rt$
  44. PRINT file$(x)
  45. NEXT x
  46. CLOSE #1
  47. 0
  48. no = 0
  49. COLOR f, w
  50. CLS
  51. nocls:
  52. COLOR f, b
  53. LOCATE 1, 1
  54. PRINT TIME$
  55. LOCATE 1, 70
  56. PRINT DATE$
  57. LOCATE 1: text$ = "DaveMatch Ver. 1.0": GOSUB center
  58. LOCATE 7: text$ = "Main Menu": GOSUB center
  59. LOCATE 7, 30
  60. PRINT "╔═════════════════╗"
  61. LOCATE 7: text$ = "Main Menu": GOSUB center
  62. LOCATE 8, 30
  63. COLOR f, b
  64. IF no = 0 THEN COLOR b, f
  65. PRINT "║Com Port ="; comport; "    ║"
  66. LOCATE 9, 30
  67. COLOR f, b
  68. IF no = 1 THEN COLOR b, f
  69. PRINT "║Phonelist        ║"
  70. LOCATE 10, 30
  71. COLOR f, b
  72. IF no = 2 THEN COLOR b, f
  73. PRINT "║";
  74. IF dial = 0 THEN PRINT "Dial " + pnumber$ + STRING$(12 - LEN(pnumber$), 32);
  75. IF dial = 1 THEN PRINT "Answer           ";
  76. IF dial = 2 THEN PRINT "Already Connected";
  77. PRINT "║"
  78. LOCATE 11, 30
  79. COLOR f, b
  80. IF no = 3 THEN COLOR b, f
  81. PRINT "║";
  82. IF coop = 0 THEN PRINT "Cooperative      ║"
  83. IF coop = 1 THEN PRINT "Deathmatch       ║"
  84. IF coop = 2 THEN PRINT "Deathmatch 2.0   ║"
  85. IF coop = 3 THEN PRINT "One Player Mode  ║"
  86. LOCATE 12, 30
  87. COLOR f, b
  88. IF no = 4 THEN COLOR b, f
  89. PRINT "║Difficulty ="; diff; "  ║"
  90. LOCATE 13, 30
  91. COLOR f, b
  92. IF no = 5 THEN COLOR b, f
  93. PRINT "║Episode ="; episode; "     ║"
  94. LOCATE 14, 30
  95. COLOR f, b
  96. IF no = 6 THEN COLOR b, f
  97. PRINT "║Level ="; level; "       ║"
  98. LOCATE 15, 30
  99. COLOR f, b
  100. IF no = 7 THEN COLOR b, f
  101. PRINT "║";
  102. IF lgame = -1 THEN PRINT "No saved game    ║"
  103. IF lgame >= 0 THEN PRINT "Load game"; lgame + 1; "     ║"
  104. LOCATE 16, 30
  105. COLOR f, b
  106. IF no = 8 THEN COLOR b, f
  107. PRINT "║";
  108. IF monsters = 0 THEN PRINT "No Demons        ║"
  109. IF monsters = 1 THEN PRINT "Regular Demons   ║"
  110. IF monsters = 2 THEN PRINT "Respawning Demons║"
  111. LOCATE 17, 30
  112. COLOR f, b
  113. IF no = 9 THEN COLOR b, f
  114. PRINT "║Load Wadfiles    ║"
  115. LOCATE 18, 30
  116. COLOR f, b
  117. IF no = 10 THEN COLOR b, f
  118. PRINT "║LETS PLAY!       ║"
  119. LOCATE 19, 30
  120. COLOR f, b
  121. PRINT "╚═════════════════╝"
  122. DO
  123. a$ = INKEY$
  124. LOOP WHILE a$ = ""
  125. a = ASC(a$)
  126. IF a = 27 THEN GOSUB save: GOTO done
  127. IF a = 13 AND no = 0 THEN comport = comport + 1
  128. IF comport = 5 THEN comport = 1
  129. IF a = 13 AND no = 1 THEN GOTO phonelist
  130. IF a = 13 AND no = 2 THEN dial = dial + 1
  131. IF dial = 3 THEN dial = 0
  132. IF a = 13 AND no = 3 THEN coop = coop + 1
  133. IF coop = 4 THEN coop = 0
  134. IF a = 13 AND no = 4 THEN diff = diff + 1
  135. IF diff = 6 THEN diff = 1
  136. IF a = 13 AND no = 5 THEN episode = episode + 1
  137. IF episode = 4 THEN episode = 1
  138. IF a = 13 AND no = 6 THEN level = level + 1
  139. IF level = 10 THEN level = 1
  140. IF a = 13 AND no = 7 THEN lgame = lgame + 1
  141. IF lgame = 6 THEN lgame = -1
  142. IF a = 13 AND no = 8 THEN monsters = monsters + 1
  143. IF monsters = 3 THEN monsters = 0
  144. IF a = 13 AND no = 9 THEN GOTO wadmenu
  145. IF a = 13 AND no = 10 THEN GOSUB save: GOTO start
  146. IF a$ = CHR$(0) + "H" THEN no = no - 1
  147. IF a$ = CHR$(0) + "P" THEN no = no + 1
  148. IF a$ = "8" THEN no = no - 1
  149. IF a$ = "2" THEN no = no + 1
  150. IF no = -1 THEN no = 10
  151. IF no = 11 THEN no = 0
  152. GOTO nocls
  153. SYSTEM
  154. center:
  155. l = LEN(text$)
  156. x = INT((80 - l) / 2)
  157. LOCATE , x
  158. PRINT text$
  159. RETURN
  160. wadmenu:
  161. COLOR , w
  162. CLS
  163. LOCATE 1, 1
  164. COLOR f, b
  165. no = 1
  166. numfile = 1
  167. lnumfile = 1
  168. text$ = "Press 'A' to add a wadfile, 'D' to delete a wadfile from the list."
  169. LOCATE 1
  170. GOSUB center
  171. text$ = "Use Arrow Keys and PGUP/PGDN to scroll"
  172. LOCATE 2
  173. GOSUB center
  174. LOCATE 3, 9
  175. PRINT "  Available   "
  176. FOR y = 5 TO 14
  177. LOCATE y, 9
  178. PRINT "║"
  179. LOCATE y, 22
  180. PRINT "║"
  181. NEXT y
  182. FOR x = 10 TO 21
  183. LOCATE 4, x
  184. PRINT "═"
  185. LOCATE 15, x
  186. PRINT "═"
  187. NEXT x
  188. LOCATE 4, 9
  189. PRINT "╔"
  190. LOCATE 4, 22
  191. PRINT "╗"
  192. LOCATE 15, 22
  193. PRINT "╝"
  194. LOCATE 15, 9
  195. PRINT "╚"
  196. LOCATE 3, 49
  197. PRINT "    Loaded    "
  198. FOR y = 5 TO 14
  199. LOCATE y, 49
  200. PRINT "║"
  201. LOCATE y, 62
  202. PRINT "║"
  203. NEXT y
  204. FOR x = 50 TO 61
  205. LOCATE 4, x
  206. PRINT "═"
  207. LOCATE 15, x
  208. PRINT "═"
  209. NEXT x
  210. LOCATE 4, 49
  211. PRINT "╔"
  212. LOCATE 4, 62
  213. PRINT "╗"
  214. LOCATE 15, 62
  215. PRINT "╝"
  216. LOCATE 15, 49
  217. PRINT "╚"
  218. refresh:
  219. FOR x = numfile TO numfile + 9
  220. LOCATE x - numfile + 5, 10
  221. COLOR f, b
  222. IF no = x - numfile + 1 THEN COLOR b, f
  223. IF x <= 100 AND x < filenum THEN PRINT file$(x) + STRING$(12 - LEN(file$(x)), 32)
  224. IF x >= filenum THEN PRINT "            "
  225. NEXT x
  226. FOR x = lnumfile TO lnumfile + 9
  227. LOCATE x - lnumfile + 5, 50
  228. COLOR f, b
  229. IF no = x - lnumfile + 11 THEN COLOR b, f
  230. IF x <= 100 THEN PRINT wads$(x) + STRING$(12 - LEN(wads$(x)), 32)
  231. NEXT x
  232. DO
  233. a$ = UCASE$(INKEY$)
  234. LOOP WHILE a$ = ""
  235. a = ASC(a$)
  236. IF a$ = CHR$(0) + "H" THEN no = no - 1
  237. IF a$ = CHR$(0) + "P" THEN no = no + 1
  238. IF a$ = CHR$(0) + "K" THEN no = no + 10
  239. IF a$ = CHR$(0) + "M" THEN no = no - 10
  240. IF a$ = CHR$(0) + "Q" AND no <= 10 THEN numfile = numfile + 1
  241. IF a$ = CHR$(0) + "Q" AND no > 10 THEN lnumfile = lnumfile + 1
  242. IF a$ = CHR$(0) + "I" AND no <= 10 THEN numfile = numfile - 1
  243. IF a$ = CHR$(0) + "I" AND no > 10 THEN lnumfile = lnumfile - 1
  244. IF numfile < 1 THEN numfile = 1
  245. IF numfile > 190 THEN numfile = 190
  246. IF lnumfile < 1 THEN lnumfile = 1
  247. IF lnumfile > 190 THEN lnumfile = 190
  248. IF a$ = "D" AND no > 10 AND lastwad > 0 THEN GOSUB delete
  249. IF a$ = "A" AND no <= 10 AND lastwad < 200 THEN GOSUB add
  250. IF no > 20 THEN no = no - 20
  251. IF no < 1 THEN no = no + 20
  252. IF a = 27 THEN GOTO 0
  253. GOTO refresh
  254. delete:
  255. lastwad = lastwad - 1
  256. wads$(lnumfile + no - 11) = ""
  257. FOR x = lnumfile + no - 11 TO lastwad
  258. wads$(x) = wads$(x + 1)
  259. NEXT x
  260. wads$(lastwad + 1) = ""
  261. RETURN
  262. add:
  263. lastwad = lastwad + 1
  264. wads$(lastwad) = file$(numfile + no - 1)
  265. RETURN
  266. save:
  267. OPEN "dmatch.dat" FOR OUTPUT AS #1
  268. PRINT #1, dial '0=dial 1=answer 2=connected
  269. PRINT #1, coop '0=cooperative 1=deathmatch 2=altdeath
  270. PRINT #1, comport
  271. PRINT #1, pnumber$
  272. PRINT #1, diff
  273. PRINT #1, episode
  274. PRINT #1, level
  275. PRINT #1, lgame
  276. PRINT #1, monsters '0=no monsters 1=regular monsters 2=respawning monsters
  277. FOR x = 1 TO lastwad
  278. PRINT #1, wads$(x)
  279. NEXT x
  280. CLOSE #1
  281. RETURN
  282. start:
  283. OPEN "fixins.dat" FOR OUTPUT AS #1
  284. IF coop < 3 THEN
  285. PRINT #1, "-COM" + LTRIM$(STR$(comport))
  286. IF dial = 0 THEN PRINT #1, "-DIAL " + pnumber$
  287. IF dial = 1 THEN PRINT #1, "-ANSWER"
  288. IF coop >= 1 THEN PRINT #1, "-DEATHMATCH"
  289. IF coop = 2 THEN PRINT #1, "-ALTDEATH"
  290. END IF
  291. PRINT #1, "-DIFFICULTY" + STR$(diff)
  292. IF lgame > -1 THEN PRINT #1, "-LOADGAME " + LTRIM$(STR$(lgame))
  293. PRINT #1, "-EPISODE " + LTRIM$(STR$(episode))
  294. PRINT #1, "-LEVEL " + LTRIM$(STR$(level))
  295. IF monsters = 0 THEN PRINT #1, "-NOMONSTERS"
  296. IF monsters = 2 THEN PRINT #1, "-RESPAWN"
  297. IF lnumfile > 0 THEN
  298. PRINT #1, "-FILE ";
  299. FOR x = 1 TO lastwad
  300. PRINT #1, wads$(x) + " ";
  301. NEXT x
  302. PRINT #1, ""
  303. END IF
  304. CLOSE #1
  305. OPEN "file.bat" FOR OUTPUT AS #1
  306. PRINT #1, "@echo off"
  307. PRINT #1, "CLS"
  308. IF coop < 3 THEN
  309. PRINT #1, "SERSETUP @FIXINS.DAT"
  310. END IF
  311. IF coop = 3 THEN
  312. PRINT #1, "DOOM @FIXINS.DAT"
  313. END IF
  314. PRINT #1, "DMATCH"
  315. CLOSE #1
  316. SYSTEM
  317. done:
  318. OPEN "FILE.BAT" FOR OUTPUT AS #1
  319. PRINT #1, "@echo off"
  320. PRINT #1, "CLS"
  321. PRINT #1, "echo Thanks for using Davematch! Y'all come back now, ya hear?"
  322. CLOSE #1
  323. SYSTEM
  324. phonelist:
  325. no = 1
  326. OPEN "modem.num" FOR INPUT AS #1
  327. FOR a = 1 TO 19 STEP 2
  328. IF NOT EOF(1) THEN INPUT #1, plist$(a)
  329. IF NOT EOF(1) THEN INPUT #1, plist$(a + 1)
  330. IF NOT EOF(1) THEN INPUT #1, nul$
  331. NEXT a
  332. CLOSE #1
  333. COLOR , w
  334. CLS
  335. LOCATE 1: text$ = "Press E on a line to edit it, S to save settings.": GOSUB center
  336. newlist:
  337. LOCATE 2
  338. COLOR , b
  339. text$ = "╔" + STRING$(50, 205) + "╗"
  340. GOSUB center
  341. FOR a = 1 TO 19 STEP 2
  342. COLOR f, b
  343. IF no = (a + 1) / 2 THEN COLOR b, f
  344. LOCATE ((a + 1) / 2) + 2
  345. text$ = "║" + plist$(a) + "  " + plist$(a + 1) + STRING$(50 - LEN(plist$(a) + "  " + plist$(a + 1)), 32) + "║"
  346. GOSUB center
  347. NEXT a
  348. LOCATE 13
  349. COLOR f, b
  350. text$ = "╚" + STRING$(50, 205) + "╝"
  351. GOSUB center
  352. DO
  353. a$ = UCASE$(INKEY$)
  354. LOOP WHILE a$ = ""
  355. a = ASC(a$)
  356. IF a$ = CHR$(0) + "H" THEN no = no - 1
  357. IF a$ = CHR$(0) + "P" THEN no = no + 1
  358. IF no = 11 THEN no = 1
  359. IF no = 0 THEN no = 10
  360. IF a = 27 THEN GOTO 0
  361. IF a = 13 THEN pnumber$ = plist$(no * 2): GOTO 0
  362. IF a$ = "E" THEN GOTO edit
  363. IF a$ = "S" THEN GOSUB save2
  364. GOTO newlist
  365. edit:
  366. LOCATE 2, 1
  367. COLOR f, b
  368. INPUT "Name"; plist$(no * 2 - 1)
  369. INPUT "Phone Number"; plist$(no * 2)
  370. GOTO phonelist
  371. save2:
  372. OPEN "modem.num" FOR OUTPUT AS #1
  373. FOR a = 1 TO 19 STEP 2
  374. PRINT #1, plist$(a)
  375. PRINT #1, plist$(a + 1)
  376. PRINT #1, ""
  377. NEXT a
  378. CLOSE #1
  379. RETURN
  380.  
  381.